The present invention relates generally to database systems, and more particularly to optimizing data synchronization between mobile clients and database systems.
Many software systems use a client-server distributed model, wherein a client requests execution of certain business operations (e.g., add a sales opportunity, view all feed items followed by a user, view forecast numbers, etc.), which leads to the request being forwarded to a server system, such as a database system, to be fulfilled. Some common client communications with backend systems (e.g., a database server) include: retrieving user data, retrieving other business data, updating data, or deleting data. Often clients interface with various middle-tier components (e.g., application servers, caching servers, business logic servers, transport or communications' layer servers, etc.) that manage client requests, sometimes forwarding the request to the appropriate underlying database or other back-end system.
Client-server systems, like other solutions, are often designed and implemented with respect to the needs of user communities at the time of the implementation. However, as technologies evolve (e.g. mobile clients are able to interact with sales type of data due to increased sophistication of mobile devices), the original solutions may not be reasonable (e.g., may be too slow or provide too much data for the device to be able to handle) for the new devices and/or may not leverage fully the capabilities of the new developments. Furthermore, the original solutions may not provide custom solutions for different user communities (e.g., mobile users vs. desktop users), based on differing client capacities.
Therefore it is desirable to provide systems and methods that overcome the above and other problems.